package bishiqiangxun;
import java.util.*;
public class Text2 {
    //笔试强训day42  第二题  兑换零钱
    //算法  完全背包问题  动态规划
    public static void main(String[] args) {
        //     Scanner in = new Scanner(System.in);
        //     // 注意 hasNext 和 hasNextLine 的区别
        //     //完全背包问题   动态规划
        //     int n = in.nextInt();
        //     int aim = in.nextInt();
        //     int[] arr = new int[n+1];
        //     for(int i = 1; i <= n; i++) {
        //         arr[i] = in.nextInt();
        //     }
        //     int[] dp = new int[aim+1];
        //   //  Arrays.fill(dp,Integer.MAX_VALUE);

        //   for(int j = 0; j <= aim; j++) {
        //     dp[j] = 0x3f3f3f3f;  //无穷大
        //   }
        //   dp[0] = 0;
        //     for(int i = 1; i <= n; i++) {
        //         for(int j = arr[i]; j <= aim; j++) {
        //             dp[j] = Math.min(dp[j],dp[j-arr[i]]+1);
        //         }
        //     }
        //     if(dp[aim] >= 0x3f3f3f3f) System.out.println(-1);
        //     else {
        //         System.out.println(dp[aim]);
        //     }
        // }


        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int n = in.nextInt();
        int aim = in.nextInt();
        int[] arr = new int[n];
        for(int i = 0; i < n; i++) {
            arr[i] = in.nextInt();
        }
        int[] dp = new int[aim+1];  //这个表示  最少需要多少张
        //一开始设置为  最大张
        Arrays.fill(dp,aim+1);
        dp[0] = 0;
        for(int i = 1 ; i <= aim; i++) {
            for(int j = 0; j < n; j++) {
                if(i >= arr[j]) {
                    dp[i] = Math.min(dp[i],dp[i-arr[j]] + 1);
                }
            }
        }
        if(dp[aim] >aim) {
            System.out.println(-1);
        }else {
            System.out.println(dp[aim]);
        }
    }

}
